﻿<?php

session_start();

try
{
	// On se connecte à MySQL
	$bdd = new PDO('mysql:host=localhost;dbname=events', 'root', '');
}
catch(Exception $e)
{
	// En cas d'erreur, on affiche un message et on arréte tout
	die('Erreur : '.$e->getMessage());
}//connexion à la bdd

$pseudo = htmlspecialchars($_POST['pseudo'], ENT_QUOTES);
$password = md5($_POST['pass1']);
$nom = htmlspecialchars($_POST['nom'], ENT_QUOTES);
$prenom = htmlspecialchars($_POST['prenom'], ENT_QUOTES);
$birthdate = htmlspecialchars($_POST['birthdate'], ENT_QUOTES);
$sexe = htmlspecialchars($_POST['sexe'], ENT_QUOTES);
$ville = htmlspecialchars($_POST['ville'], ENT_QUOTES);
$departement = htmlspecialchars($_POST['departement'], ENT_QUOTES);
$pays = htmlspecialchars($_POST['pays'], ENT_QUOTES);
$email = htmlspecialchars($_POST['email'], ENT_QUOTES);


//Nous allons verifier si les saisies correspondent à notre attende
//verification du pseudo



$i = 0;
$req = $bdd->prepare('SELECT count(*) FROM user WHERE pseudo=:pseudo');
$req->execute(array(
		'pseudo' => $_POST['pseudo']
));
while ($donnees = $req->fetch()) {
	if ($donnees['count(*)'] != 0) {
		echo "Le pseudo est déjà utilisé </br>";
		$i=1;
	}
}


//verification du mot de passe
if ($_POST['pass1'] != $_POST['pass2'] || empty($_POST['pass2']) || empty($_POST['pass1'])) {
	echo "Les mots de passe ne doivent pas être differents ou vides ! </br>";
	$i = 1;
}

 //verification de la forme de l'email
if (!preg_match('#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$#', $_POST['email'])) {
echo "Veuillez entrer un e-mail de la forme dupont.123@mail.fr <br />";
$i = 1;
}

// Pourquoi obliger l'unicité de l'email ?

// verification de l'unicité de l'email
$req = $bdd->prepare('SELECT count(*) FROM user WHERE email = :email');
$req->execute(array(
		'email' => $_POST['email']
));

while ($donnees = $req->fetch()) {
if ($donnees['count(*)'] != 0) {
echo "L'email est déjà utilisé </br>";
$i=1;
}
}
$req->closeCursor();

if (isset($_FILES['photo']) AND $_FILES['photo']['error'] == 0)
{

    // Testons si le fichier n'est pas trop gros

    if ($_FILES['photo']['size'] <= 5000000) { 


        // Testons si l'extension est autorisée

        $infosfichier = pathinfo($_FILES['photo']['name']);

        $extension_upload = $infosfichier['extension'];

        $extensions_autorisees = array('jpg', 'jpeg', 'gif','png');

        if (in_array($extension_upload, $extensions_autorisees))

        // On peut valider le fichier et le stocker définitivement
		$i=htmlspecialchars($_POST['pseudo']);
		$nomImage = "../../media/uploads/". $i . ".".$extension_upload;
        $resultat = move_uploaded_file($_FILES['photo']['tmp_name'], $nomImage);

        basename($_FILES['photo']['name']);

}
$file = "../../media/uploads/". $i . ".".$extension_upload; ; # L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png

$x = 200;

$y = 200; # Taille en pixel de l'image redimensionnée

$size = getimagesize($file);

if ( $size) {



	if ($size['mime']=='image/jpeg' ) {
		$img_big = imagecreatefromjpeg($file); # On ouvre l'image d'origine
		$img_new = imagecreate($x, $y);
		# création de la miniature
		$img_mini = imagecreatetruecolor($x, $y)
		or   $img_mini = imagecreate($x, $y);

		// copie de l'image, avec le redimensionnement.
		imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

		imagejpeg($img_mini,$file );

	}
	elseif ($size['mime']=='image/png' ) {
		$img_big = imagecreatefrompng($file); # On ouvre l'image d'origine
		$img_new = imagecreate($x, $y);
		# création de la miniature
		$img_mini = imagecreatetruecolor($x, $y)
		or   $img_mini = imagecreate($x, $y);

		// copie de l'image, avec le redimensionnement.
		imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

		imagepng($img_mini,$file );

	}
	elseif ($size['mime']=='image/gif' ) {
		$img_big = imagecreatefromgif($file); # On ouvre l'image d'origine
		$img_new = imagecreate($x, $y);
		# création de la miniature
		$img_mini = imagecreatetruecolor($x, $y)
		or   $img_mini = imagecreate($x, $y);

		// copie de l'image, avec le redimensionnement.
		imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);

		imagegif($img_mini,$file );

	}

}

}


else{ echo " Une erreur s'est produite lors de l'upload de votre photo, verifier que la taille de votre photo ne dépasse pas 5mo ou que l'extension de votre photo soit .jpg, .jpeg, .gif, .png ";
$i=1;
}


if ($i==1) { //Cas où il y a une ou plusieur erreurs
	echo " Oups... un probleme est survenu lors de votre inscription.";
}

// Ecriture des données
if ($i == 0) {//Cas où il n'y a pas d'erreur

	echo "L'inscription s'est bien deroulee";
	//On vérifie que les champs ne continennent pas de html  et on crypte le mot de passe





	//On ecrit le tout dans la table user
			$chemin ="../media/uploads/".$pseudo.".".$extension_upload;
	$req = $bdd->prepare('INSERT INTO user(pseudo, password, nom, prenom, birthdate, sexe, ville, departement, pays, email, chemin) VALUES(:pseudo, :password, :nom, :prenom, :birthdate, :sexe, :ville, :departement, :pays, :email, :chemin )');
	$req->execute(array(
			'pseudo' => $pseudo,
			'password' => $password,
			'nom' => $nom,
			'prenom' => $prenom,
			'birthdate' => $birthdate,
			'sexe' => $sexe,
			'ville' => $ville,
			'departement' => $departement,
			'pays' => $pays,
			'email' => $email,
			'chemin' => $chemin
	));
}
$req->closeCursor();
?>
